#pragma once
#include "FFEncodeFilter.h"

#include <atlbase.h>
#include <atlcoll.h>
#include "StackList.h"


class CFFEncodeInputPin :  public CBaseInputPin
{
public:
	CFFEncodeInputPin(CBaseFilter *pFilter,CCritSec *pLock,HRESULT *phr,LPCWSTR pName, int streamType);
	virtual ~CFFEncodeInputPin(void);

	DECLARE_IUNKNOWN
	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);

	/*HRESULT CheckMediaType(const CMediaType *pmt);
	HRESULT CompleteConnect(IPin *pReceivePin);
	HRESULT BreakConnect();
	HRESULT Active();
	HRESULT Inactive();

	STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
	STDMETHODIMP Receive(IMediaSample *pSample);
	STDMETHODIMP EndOfStream();

private:
	void PushFrame(CAutoPtr<CFrameBase> pFrame);
	CAutoPtr<CFrameBase> PopFrame();

private:

	CCritSec m_csReceive;
	REFERENCE_TIME m_rtMaxStart, m_rtDuration;
	bool m_bEOS;

	CCritSec m_csListValid;
	CAMEvent m_validEvent;
	CAutoPtrList<CFrameBase> m_lstFrame;
	int m_eType;
	CTransBase* m_pTrans;*/

	
};
